<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>UVSOCK Data Types</title>
<title>Using the µVision Socket Interface: UVSOCK Data Types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="drv.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="drv.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="keilarm.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Using the µVision Socket Interface
   &#160;<span id="projectnumber">Application Note 198</span>
   </div>
   <div id="projectbrief">Control and monitor µVision via the built-in TCP/IP interface</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('uvsock_data_types.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">UVSOCK Data Types </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The <b>UVSOCK</b> data types are designed for easy implementation on a x86-based architecture without conversion. The table lists the types.</p>
<p><b>Data types and size</b></p>
<table class="doxtable">
<tr>
<th align="left">Data Type </th><th align="left">Width (bits)  </th></tr>
<tr>
<td align="left">bit </td><td align="left">1 </td></tr>
<tr>
<td align="left">(unsigned) char </td><td align="left">8 </td></tr>
<tr>
<td align="left">(unsigned) short </td><td align="left">16 </td></tr>
<tr>
<td align="left">(unsigned) short int </td><td align="left">16 </td></tr>
<tr>
<td align="left">(unsigned) int </td><td align="left">32 </td></tr>
<tr>
<td align="left">(unsigned) long </td><td align="left">32 </td></tr>
<tr>
<td align="left">(unsigned) long int </td><td align="left">32 </td></tr>
<tr>
<td align="left">(unsigned) int64 </td><td align="left">64 </td></tr>
<tr>
<td align="left">float </td><td align="left">32 </td></tr>
<tr>
<td align="left">double </td><td align="left">64 </td></tr>
<tr>
<td align="left">ptr </td><td align="left">32 </td></tr>
<tr>
<td align="left">union </td><td align="left">32 </td></tr>
<tr>
<td align="left">struct </td><td align="left">32 </td></tr>
<tr>
<td align="left">func </td><td align="left">32 </td></tr>
<tr>
<td align="left">string </td><td align="left">32 </td></tr>
<tr>
<td align="left">enum </td><td align="left">32 </td></tr>
<tr>
<td align="left">field </td><td align="left">32 </td></tr>
</table>
<p><b>Endianness</b> <br/>
All types use the conventions of x86 processors. That is, they are byte little endian.</p>
<p><b>Integer Signing</b> <br/>
Negative integer numbers are represented as 2's complement.</p>
<p><b>Floating Point Encoding</b> <br/>
Floating point numbers are represented according to IEEE 754 Standard for Binary Floating-Point Arithmetic (IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985)).</p>
<p><b>The Variant Data Type</b> <br/>
The Variant Data Type is returned by several functions in <b>UVSOCK</b> and defined in <a class="el" href="group__vtt__type__codes.html#gabef9b872600b30284d3f7fd1b6c549c4">VTT_TYPE</a>. It contains a raw value that should be interpreted as indicated by the Value Type (vType). This is necessary because in some cases the result type is not known beforehand, for example, when reading a Virtual Register (VTR).</p>
<p><b>C declaration of the Variant Data Type:</b> </p>
<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>tval  {</div>
<div class="line">  <span class="keywordtype">int</span>              vType;  <span class="comment">// VTREG Result-Type</span></div>
<div class="line">  <span class="keyword">union  </span>{                 <span class="comment">// member depends on &#39;&#39;vType&#39;</span></div>
<div class="line">    <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>     ul;</div>
<div class="line">    <span class="keywordtype">signed</span> <span class="keywordtype">char</span>       sc;</div>
<div class="line">    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>     uc;</div>
<div class="line">    <span class="keywordtype">signed</span> <span class="keywordtype">short</span>     i16;</div>
<div class="line">    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>   u16;</div>
<div class="line">    <span class="keywordtype">signed</span> <span class="keywordtype">long</span>        l;</div>
<div class="line">    <span class="keywordtype">int</span>                i;</div>
<div class="line">    __int64          i64;</div>
<div class="line">    <span class="keywordtype">unsigned</span> __int64 u64;</div>
<div class="line">    <span class="keywordtype">float</span>              f;</div>
<div class="line">    <span class="keywordtype">double</span>             d;</div>
<div class="line">  } v;</div>
<div class="line">} <a class="code" href="structTVAL.html">TVAL</a>;</div>
</div><!-- fragment --><p><b>Definitions of the Value Type (vType):</b> </p>
<div class="fragment"><div class="line">        <span class="comment">//Type         // Element access in C union:</span></div>
<div class="line"><span class="preprocessor">#define VTT_void    0  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_bit     1  // v.i &amp;amp; 1</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_char    2  // v.sc</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_uchar   3  // v.uc</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_int     4  // v.i</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_uint    5  // v.ul</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_short   6  // v.i16</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_ushort  7  // v.u16</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_long    8  // v.l</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_ulong   9  // v.ul</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_float  10  // v.f</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_double 11  // v.d</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_ptr    12  // v.ul</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_union  13  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_struct 14  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_func   15  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_string 16  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_enum   17  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_field  18  // ---</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VTT_int64  19  // v.i64</span></div>
<div class="line"><span class="preprocessor">#define VTT_uint64 20  // v.u64</span></div>
</div><!-- fragment --> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">Introduction</a></li><li class="navelem"><a class="el" href="uvsock_messaging.html">UVSOCK Messaging</a></li>
    <li class="footer">Generated on Mon Jul 2 2018 08:45:40 for Using the µVision Socket Interface by ARM Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
